Ohara 是 OharaStream 其中一個最具核心的一部份,主要是使用 Scala 和 Java 程式語言開發,希望能做出一個 Stream Processing 的平台。以下是 Ohara 提供的主要功能:
Workspace: Ohara 提供的 Workerspace 的功能可以方便讓使用者透過 UI 的方式,就可以把 Apache Zookeeper、Apache Kafka Broker 和 Apache Kafka Connector 的服務部署成一個叢集或多個叢集 (cluster)。
Pipeline Graph: 使用 UI 的方式就可以把所需要的 Pipeline 資料流建立出來,使用者盡量就可以不用使用寫程式的方式,就可以把資料從來源端取出來然後經過轉換之後再寫入到目的端。
StreamApp: 轉換資料的一個程式,例如小寫轉大寫、過濾需要哪些資料,另外還有提供一些簡單的 Aggregate 的功能來計算資料。
Restful API: 如果使用者不想透過 UI 來建立 Workspace 和 Pipeline, Ohara 另外也有提供 Restful API 的方式來建立叢集的服務和 Pipeline 資料流,這個功能比較適合開發者來使用。
下圖是 Ohara 整個系統的架構:
以下分別介紹上圖每一個元件所代表的功能的意義:
Ohara Manager: 主要提供前端 UI 的服務讓使用者可以透過 Browser 就可以建立 Zookeeper、Broker 和 Woker 的 cluster 並且使用 UI 來建立資料流的 Pipeline,讓使用者的操作更加方便,就是以上所說的 Workspace 和 Pipeline Graph 的功能。
Ohara Configurator: 是介於前端和後端之間的橋樑,主要提供 Restful API 給前端使用,並且會連到後端的 Ohara Agent 做 cluster 和 pipeline 的執行,對應到上面所介紹的 Restful API 的功能。
Ohara Agent: 用來實際執行 Workspace 的功能,像是 Zookeeper、Broker, Worker, Streamapp 和 Shabondi 的 cluster 新增或是刪除的動作。Ohara 的 Zookeeper、Broker、Worker、Streamapp 和 Shabondi 的服務底層是使用 Docker Container 的方是來啟動,然後使用 SSH 或是 Kubernetes 的模式來建立 Cluster,因此在啟動 Ohara Configurator Service 會提供參數給使用者指定要使用 SSH 或是 K8S 模式,如果沒有指定預設是使用 SSH 的模式,在 Ohara Quickstart 的 VM 預設也是使用 SSH 的模式。
Zookeeper Cluster: 它是由 Apache Zookeeper Service 組合而成的 cluster,主要提供給 Kafka Broker Service 使用。
Broker、Worker、StreamApp Cluster: 這三個 Cluster 都是使用 Apache Kafka 所提供的服務建立出來的 Cluster,這三個 Cluster 也就是 Ohara Pipeline 資料流底層使用最核心的服務。
Shabondi Cluster: 這是未來規劃要做的功能。主要提供使用者使用 Http 的方法就可以將原始資料送入 Ohara 的 Pipeline 資料流裡,增加使用者建立資料的方便性。
以上簡單介紹 Ohara 的元件主要目的是,在之後安裝 Ohara 時才會了解啟動服務所代表的意義和目的, Ohara 還有其它的元件在之後也會再做介紹。